Vegetation Index · Percentage Based

IPVI – Infrared Percentage Vegetation Index

IPVI is a simplified version of NDVI that expresses vegetation strength as a percentage based on the contribution of NIR reflectance. It is always between 0 and 1.

1. Scientific Definition

The Infrared Percentage Vegetation Index (IPVI) is a robust and simple vegetation index derived from the ratio between NIR reflectance and the sum of NIR and Red reflectance.

Formula

IPVI = NIR / (NIR + Red) Range: 0 → 1

Interpretation

IPVI ValueMeaning
0 – 0.2No vegetation
0.2 – 0.4Sparse vegetation
0.4 – 0.6Moderate vegetation
0.6 – 0.8Healthy vegetation
0.8 – 1.0Dense, vigorous vegetation

Applications

  • Agricultural monitoring
  • Vegetation mapping
  • Teaching & student exercises
  • Simple biomass estimation

2. Required Data

Sentinel-2 Bands

  • NIR: B8
  • Red: B4

Good Practices

  • Use surface reflectance (S2_SR)
  • Mask clouds & shadows
  • Compare images with same season

Suggested Palette

[ "#440154", "#3b528b", "#21908c", "#5dc963", "#fde725" ]

3. Google Earth Engine Code – IPVI


// IPVI using Sentinel-2
// Formula: IPVI = NIR / (NIR + Red)

var roi = geometry;
Map.centerObject(roi, 11);

// Load Sentinel-2 surface reflectance
var s2 = ee.ImageCollection("COPERNICUS/S2_SR")
  .filterBounds(roi)
  .filterDate("2023-01-01", "2023-12-31")
  .filter(ee.Filter.lt("CLOUDY_PIXEL_PERCENTAGE", 20))
  .select(["B4", "B8"]); // Red, NIR

var img = s2.median().clip(roi);

// Compute IPVI
var ipvi = img.expression(
  "NIR / (NIR + RED)",
  {
    "NIR": img.select("B8"),
    "RED": img.select("B4")
  }
).rename("IPVI");

var vis = {
  min: 0,
  max: 1,
  palette: ["#440154","#3b528b","#21908c","#5dc963","#fde725"]
};

Map.addLayer(ipvi, vis, "IPVI");

// Export
Export.image.toDrive({
  image: ipvi,
  description: "IPVI_Export",
  fileNamePrefix: "IPVI",
  region: roi,
  scale: 10,
  crs: "EPSG:4326",
  maxPixels: 1e13
});